/*
 *
 *    Copyright (c) 2022 Project CHIP Authors
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */

// THIS FILE IS GENERATED BY ZAP

// Prevent multiple inclusion
#pragma once

#include <lib/core/CHIPConfig.h>

// Default values for the attributes longer than a pointer,
// in a form of a binary blob
// Separate block is generated for big-endian and little-endian cases.
#if BIGENDIAN_CPU
#define GENERATED_DEFAULTS                                                                                             \
	{                                                                                                              \
		/* Endpoint: 0, Cluster: General Commissioning (server), big-endian */                                 \
                                                                                                                       \
		/* 0 - Breadcrumb, */                                                                                  \
		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,                                                        \
	}

#else // !BIGENDIAN_CPU
#define GENERATED_DEFAULTS                                                                                             \
	{                                                                                                              \
		/* Endpoint: 0, Cluster: General Commissioning (server), little-endian */                              \
                                                                                                                       \
		/* 0 - Breadcrumb, */                                                                                  \
		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,                                                        \
	}

#endif // BIGENDIAN_CPU

#define GENERATED_DEFAULTS_COUNT (1)

#define ZAP_TYPE(type) ZCL_##type##_ATTRIBUTE_TYPE
#define ZAP_LONG_DEFAULTS_INDEX(index)                                                                                 \
	{                                                                                                              \
		&generatedDefaults[index]                                                                              \
	}
#define ZAP_MIN_MAX_DEFAULTS_INDEX(index)                                                                              \
	{                                                                                                              \
		&minMaxDefaults[index]                                                                                 \
	}
#define ZAP_EMPTY_DEFAULT()                                                                                            \
	{                                                                                                              \
		(uint32_t)0                                                                                            \
	}
#define ZAP_SIMPLE_DEFAULT(x)                                                                                          \
	{                                                                                                              \
		(uint32_t) x                                                                                           \
	}

// This is an array of EmberAfAttributeMinMaxValue structures.
#define GENERATED_MIN_MAX_DEFAULT_COUNT 1
#define GENERATED_MIN_MAX_DEFAULTS                                                                                     \
	{                                                                                                              \
		/* Endpoint: 0, Cluster: Time Format Localization (server) */                                          \
		{                                                                                                      \
			(uint16_t)0x0, (uint16_t)0x0, (uint16_t)0x1                                                    \
		} /* HourFormat */                                                                                     \
	}

#define ZAP_ATTRIBUTE_MASK(mask) ATTRIBUTE_MASK_##mask
// This is an array of EmberAfAttributeMetadata structures.
#define GENERATED_ATTRIBUTE_COUNT 198
#define GENERATED_ATTRIBUTES                                                                                                             \
	{                                                                                                                                \
		/* Endpoint: 0, Cluster: Descriptor (server) */                                                                          \
		{ 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE), ZAP_EMPTY_DEFAULT() }, /* device                 \
														  list                   \
														*/                       \
			{ 0x00000001, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* server list */                                                                       \
			{ 0x00000002, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* client list */                                                                       \
			{ 0x00000003, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* parts list */                                                                        \
			{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* ClusterRevision */                                                                   \
                                                                                                                                         \
			/* Endpoint: 0, Cluster: Binding (server) */                                                                     \
			{ 0x00000000, ZAP_TYPE(ARRAY), 0,                                                                                \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(WRITABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* Binding */                                                                           \
			{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */                             \
                                                                                                                                         \
			/* Endpoint: 0, Cluster: Access Control (server) */                                                              \
			{ 0x00000000, ZAP_TYPE(ARRAY), 0,                                                                                \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(WRITABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* ACL */                                                                               \
			{ 0x00000001, ZAP_TYPE(ARRAY), 0,                                                                                \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(WRITABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* Extension */                                                                         \
			{ 0x00000002, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* SubjectsPerAccessControlEntry */                                                     \
			{ 0x00000003, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* TargetsPerAccessControlEntry */                                                      \
			{ 0x00000004, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* AccessControlEntriesPerFabric */                                                     \
			{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */                             \
                                                                                                                                         \
			/* Endpoint: 0, Cluster: Basic (server) */                                                                       \
			{ 0x00000000, ZAP_TYPE(INT16U), 2,                                                                               \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* DataModelRevision */                                                                 \
			{ 0x00000001, ZAP_TYPE(CHAR_STRING), 33,                                                                         \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* VendorName */                                                                        \
			{ 0x00000002, ZAP_TYPE(VENDOR_ID), 2,                                                                            \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* VendorID */                                                                          \
			{ 0x00000003, ZAP_TYPE(CHAR_STRING), 33,                                                                         \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* ProductName */                                                                       \
			{ 0x00000004, ZAP_TYPE(INT16U), 2,                                                                               \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* ProductID */                                                                         \
			{ 0x00000005, ZAP_TYPE(CHAR_STRING), 33,                                                                         \
			  ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(SINGLETON) | ZAP_ATTRIBUTE_MASK(WRITABLE),                   \
			  ZAP_EMPTY_DEFAULT() }, /* NodeLabel */                                                                         \
			{ 0x00000006, ZAP_TYPE(CHAR_STRING), 3,                                                                          \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON) |                                         \
				  ZAP_ATTRIBUTE_MASK(WRITABLE),                                                                          \
			  ZAP_EMPTY_DEFAULT() }, /* Location */                                                                          \
			{ 0x00000007, ZAP_TYPE(INT16U), 2,                                                                               \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* HardwareVersion */                                                                   \
			{ 0x00000008, ZAP_TYPE(CHAR_STRING), 65,                                                                         \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* HardwareVersionString */                                                             \
			{ 0x00000009, ZAP_TYPE(INT32U), 4,                                                                               \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* SoftwareVersion */                                                                   \
			{ 0x0000000A, ZAP_TYPE(CHAR_STRING), 65,                                                                         \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* SoftwareVersionString */                                                             \
			{ 0x0000000B, ZAP_TYPE(CHAR_STRING), 17,                                                                         \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* ManufacturingDate */                                                                 \
			{ 0x0000000C, ZAP_TYPE(CHAR_STRING), 33,                                                                         \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* PartNumber */                                                                        \
			{ 0x0000000D, ZAP_TYPE(LONG_CHAR_STRING), 258,                                                                   \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* ProductURL */                                                                        \
			{ 0x0000000E, ZAP_TYPE(CHAR_STRING), 65,                                                                         \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* ProductLabel */                                                                      \
			{ 0x0000000F, ZAP_TYPE(CHAR_STRING), 33,                                                                         \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* SerialNumber */                                                                      \
			{ 0x00000010, ZAP_TYPE(BOOLEAN), 1,                                                                              \
			  ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(SINGLETON) | ZAP_ATTRIBUTE_MASK(WRITABLE),                   \
			  ZAP_SIMPLE_DEFAULT(0) }, /* LocalConfigDisabled */                                                             \
			{ 0x00000011, ZAP_TYPE(BOOLEAN), 1, ZAP_ATTRIBUTE_MASK(SINGLETON),                                               \
			  ZAP_SIMPLE_DEFAULT(1) }, /* Reachable */                                                                       \
			{ 0x00000012, ZAP_TYPE(CHAR_STRING), 33,                                                                         \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* UniqueID */                                                                          \
			{ 0x00000013, ZAP_TYPE(STRUCT), 0,                                                                               \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(SINGLETON),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* CapabilityMinima */                                                                  \
			{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(SINGLETON),                                                \
			  ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */                                                                 \
                                                                                                                                         \
			/* Endpoint: 0, Cluster: OTA Software Update Requestor (server) */                                               \
			{ 0x00000000, ZAP_TYPE(ARRAY), 0,                                                                                \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(WRITABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* DefaultOtaProviders */                                                               \
			{ 0x00000001, ZAP_TYPE(BOOLEAN), 1, 0, ZAP_SIMPLE_DEFAULT(1) }, /* UpdatePossible */                             \
			{ 0x00000002, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0) }, /* UpdateState */                                  \
			{ 0x00000003, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_SIMPLE_DEFAULT(0) }, /* UpdateStateProgress  \
														  */                     \
			{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */                             \
                                                                                                                                         \
			/* Endpoint: 0, Cluster: Localization Configuration (server) */                                                  \
			{ 0x00000001, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* SupportedLocales */                                                                  \
                                                                                                                                         \
			/* Endpoint: 0, Cluster: Time Format Localization (server) */                                                    \
			{ 0x00000000, ZAP_TYPE(ENUM8), 1,                                                                                \
			  ZAP_ATTRIBUTE_MASK(MIN_MAX) | ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(WRITABLE),                     \
			  ZAP_MIN_MAX_DEFAULTS_INDEX(0) }, /* HourFormat */                                                              \
			{ 0x00000001, ZAP_TYPE(ENUM8), 1, ZAP_ATTRIBUTE_MASK(TOKENIZE) | ZAP_ATTRIBUTE_MASK(WRITABLE),                   \
			  ZAP_EMPTY_DEFAULT() }, /* ActiveCalendarType */                                                                \
			{ 0x00000002, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* SupportedCalendarTypes */                                                            \
			{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */                             \
                                                                                                                                         \
			/* Endpoint: 0, Cluster: General Commissioning (server) */                                                       \
			{ 0x00000000, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(WRITABLE),                                                 \
			  ZAP_LONG_DEFAULTS_INDEX(0) }, /* Breadcrumb */                                                                 \
			{ 0x00000001, ZAP_TYPE(STRUCT), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* BasicCommissioningInfo */                                                            \
			{ 0x00000002, ZAP_TYPE(ENUM8), 1, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* RegulatoryConfig */                                                                  \
			{ 0x00000003, ZAP_TYPE(ENUM8), 1, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* LocationCapability */                                                                \
			{ 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(6) }, /* FeatureMap */                                \
			{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */                        \
                                                                                                                                         \
			/* Endpoint: 0, Cluster: Network Commissioning (server) */                                                       \
			{ 0x00000000, ZAP_TYPE(INT8U), 1, 0, ZAP_EMPTY_DEFAULT() }, /* MaxNetworks */                                    \
			{ 0x00000001, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* Networks */                                                                          \
			{ 0x00000002, ZAP_TYPE(INT8U), 1, 0, ZAP_EMPTY_DEFAULT() }, /* ScanMaxTimeSeconds */                             \
			{ 0x00000003, ZAP_TYPE(INT8U), 1, 0, ZAP_EMPTY_DEFAULT() }, /* ConnectMaxTimeSeconds */                          \
			{ 0x00000004, ZAP_TYPE(BOOLEAN), 1, ZAP_ATTRIBUTE_MASK(WRITABLE), ZAP_EMPTY_DEFAULT() }, /* InterfaceEnabled     \
														  */                     \
			{ 0x00000005, ZAP_TYPE(ENUM8), 1, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() }, /* LastNetworkingStatus   \
														*/                       \
			{ 0x00000006, ZAP_TYPE(OCTET_STRING), 33, ZAP_ATTRIBUTE_MASK(NULLABLE),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* LastNetworkID */                                                                     \
			{ 0x00000007, ZAP_TYPE(INT32S), 4, ZAP_ATTRIBUTE_MASK(NULLABLE), ZAP_EMPTY_DEFAULT() }, /* LastConnectErrorValue \
														 */                      \
			{ 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(2) }, /* FeatureMap */                                \
			{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */                        \
                                                                                                                                         \
			/* Endpoint: 0, Cluster: General Diagnostics (server) */                                                         \
			{ 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* NetworkInterfaces */                                                                 \
			{ 0x00000001, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* RebootCount */                                                                       \
			{ 0x00000002, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* UpTime */                                                                            \
			{ 0x00000003, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* TotalOperationalHours */                                                             \
			{ 0x00000004, ZAP_TYPE(ENUM8), 1, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* BootReasons */                                                                       \
			{ 0x00000005, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* ActiveHardwareFaults */                                                              \
			{ 0x00000006, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* ActiveRadioFaults */                                                                 \
			{ 0x00000007, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* ActiveNetworkFaults */                                                               \
			{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */                        \
                                                                                                                                         \
			/* Endpoint: 0, Cluster: Software Diagnostics (server) */                                                        \
			{ 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* ThreadMetrics */                                                                     \
			{ 0x00000001, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* CurrentHeapFree */                                                                   \
			{ 0x00000002, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* CurrentHeapUsed */                                                                   \
			{ 0x00000003, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* CurrentHeapHighWatermark */                                                          \
			{ 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(1) }, /* FeatureMap */                                \
			{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */                        \
                                                                                                                                         \
			/* Endpoint: 0, Cluster: Thread Network Diagnostics (server) */                                                  \
			{ 0x00000000, ZAP_TYPE(INT16U), 2,                                                                               \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* channel */                                                                           \
			{ 0x00000001, ZAP_TYPE(ENUM8), 1,                                                                                \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* RoutingRole */                                                                       \
			{ 0x00000002, ZAP_TYPE(CHAR_STRING), 17,                                                                         \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* NetworkName */                                                                       \
			{ 0x00000003, ZAP_TYPE(INT16U), 2,                                                                               \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* PanId */                                                                             \
			{ 0x00000004, ZAP_TYPE(INT64U), 8,                                                                               \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* ExtendedPanId */                                                                     \
			{ 0x00000005, ZAP_TYPE(OCTET_STRING), 18,                                                                        \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* MeshLocalPrefix */                                                                   \
			{ 0x00000006, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* OverrunCount */                                                                      \
			{ 0x00000007, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* NeighborTableList */                                                                 \
			{ 0x00000008, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* RouteTableList */                                                                    \
			{ 0x00000009, ZAP_TYPE(INT32U), 4,                                                                               \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* PartitionId */                                                                       \
			{ 0x0000000A, ZAP_TYPE(INT8U), 1,                                                                                \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* weighting */                                                                         \
			{ 0x0000000B, ZAP_TYPE(INT8U), 1,                                                                                \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* DataVersion */                                                                       \
			{ 0x0000000C, ZAP_TYPE(INT8U), 1,                                                                                \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* StableDataVersion */                                                                 \
			{ 0x0000000D, ZAP_TYPE(INT8U), 1,                                                                                \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* LeaderRouterId */                                                                    \
			{ 0x0000000E, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* DetachedRoleCount */                                                                 \
			{ 0x0000000F, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* ChildRoleCount */                                                                    \
			{ 0x00000010, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* RouterRoleCount */                                                                   \
			{ 0x00000011, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* LeaderRoleCount */                                                                   \
			{ 0x00000012, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* AttachAttemptCount */                                                                \
			{ 0x00000013, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* PartitionIdChangeCount */                                                            \
			{ 0x00000014, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* BetterPartitionAttachAttemptCount */                                                 \
			{ 0x00000015, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* ParentChangeCount */                                                                 \
			{ 0x00000016, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* TxTotalCount */                                                                      \
			{ 0x00000017, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* TxUnicastCount */                                                                    \
			{ 0x00000018, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* TxBroadcastCount */                                                                  \
			{ 0x00000019, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* TxAckRequestedCount */                                                               \
			{ 0x0000001A, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* TxAckedCount */                                                                      \
			{ 0x0000001B, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* TxNoAckRequestedCount */                                                             \
			{ 0x0000001C, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* TxDataCount */                                                                       \
			{ 0x0000001D, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* TxDataPollCount */                                                                   \
			{ 0x0000001E, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* TxBeaconCount */                                                                     \
			{ 0x0000001F, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* TxBeaconRequestCount */                                                              \
			{ 0x00000020, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* TxOtherCount */                                                                      \
			{ 0x00000021, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* TxRetryCount */                                                                      \
			{ 0x00000022, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* TxDirectMaxRetryExpiryCount */                                                       \
			{ 0x00000023, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* TxIndirectMaxRetryExpiryCount */                                                     \
			{ 0x00000024, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* TxErrCcaCount */                                                                     \
			{ 0x00000025, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* TxErrAbortCount */                                                                   \
			{ 0x00000026, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* TxErrBusyChannelCount */                                                             \
			{ 0x00000027, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* RxTotalCount */                                                                      \
			{ 0x00000028, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* RxUnicastCount */                                                                    \
			{ 0x00000029, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* RxBroadcastCount */                                                                  \
			{ 0x0000002A, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* RxDataCount */                                                                       \
			{ 0x0000002B, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* RxDataPollCount */                                                                   \
			{ 0x0000002C, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* RxBeaconCount */                                                                     \
			{ 0x0000002D, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* RxBeaconRequestCount */                                                              \
			{ 0x0000002E, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* RxOtherCount */                                                                      \
			{ 0x0000002F, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* RxAddressFilteredCount */                                                            \
			{ 0x00000030, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* RxDestAddrFilteredCount */                                                           \
			{ 0x00000031, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* RxDuplicatedCount */                                                                 \
			{ 0x00000032, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* RxErrNoFrameCount */                                                                 \
			{ 0x00000033, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* RxErrUnknownNeighborCount */                                                         \
			{ 0x00000034, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* RxErrInvalidSrcAddrCount */                                                          \
			{ 0x00000035, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* RxErrSecCount */                                                                     \
			{ 0x00000036, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* RxErrFcsCount */                                                                     \
			{ 0x00000037, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* RxErrOtherCount */                                                                   \
			{ 0x00000038, ZAP_TYPE(INT64U), 8,                                                                               \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* ActiveTimestamp */                                                                   \
			{ 0x00000039, ZAP_TYPE(INT64U), 8,                                                                               \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* PendingTimestamp */                                                                  \
			{ 0x0000003A, ZAP_TYPE(INT32U), 4,                                                                               \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* delay */                                                                             \
			{ 0x0000003B, ZAP_TYPE(STRUCT), 0,                                                                               \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* SecurityPolicy */                                                                    \
			{ 0x0000003C, ZAP_TYPE(OCTET_STRING), 5,                                                                         \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* ChannelMask */                                                                       \
			{ 0x0000003D, ZAP_TYPE(STRUCT), 0,                                                                               \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* OperationalDatasetComponents */                                                      \
			{ 0x0000003E, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* ActiveNetworkFaultsList */                                                           \
			{ 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(0x000F) }, /* FeatureMap */                           \
			{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */                        \
                                                                                                                                         \
			/* Endpoint: 0, Cluster: WiFi Network Diagnostics (server) */                                                    \
			{ 0x00000000, ZAP_TYPE(OCTET_STRING), 7,                                                                         \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* bssid */                                                                             \
			{ 0x00000001, ZAP_TYPE(ENUM8), 1,                                                                                \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* SecurityType */                                                                      \
			{ 0x00000002, ZAP_TYPE(ENUM8), 1,                                                                                \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* WiFiVersion */                                                                       \
			{ 0x00000003, ZAP_TYPE(INT16U), 2,                                                                               \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* ChannelNumber */                                                                     \
			{ 0x00000004, ZAP_TYPE(INT8S), 1,                                                                                \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* Rssi */                                                                              \
			{ 0x00000005, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* BeaconLostCount */                                                                   \
			{ 0x00000006, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* BeaconRxCount */                                                                     \
			{ 0x00000007, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* PacketMulticastRxCount */                                                            \
			{ 0x00000008, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* PacketMulticastTxCount */                                                            \
			{ 0x00000009, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* PacketUnicastRxCount */                                                              \
			{ 0x0000000A, ZAP_TYPE(INT32U), 4, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* PacketUnicastTxCount */                                                              \
			{ 0x0000000B, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* CurrentMaxRate */                                                                    \
			{ 0x0000000C, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* OverrunCount */                                                                      \
			{ 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(3) }, /* FeatureMap */                                \
			{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */                        \
                                                                                                                                         \
			/* Endpoint: 0, Cluster: Ethernet Network Diagnostics (server) */                                                \
			{ 0x00000000, ZAP_TYPE(ENUM8), 1,                                                                                \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* PHYRate */                                                                           \
			{ 0x00000001, ZAP_TYPE(BOOLEAN), 1,                                                                              \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* FullDuplex */                                                                        \
			{ 0x00000002, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* PacketRxCount */                                                                     \
			{ 0x00000003, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* PacketTxCount */                                                                     \
			{ 0x00000004, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* TxErrCount */                                                                        \
			{ 0x00000005, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* CollisionCount */                                                                    \
			{ 0x00000006, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* OverrunCount */                                                                      \
			{ 0x00000007, ZAP_TYPE(BOOLEAN), 1,                                                                              \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* CarrierDetect */                                                                     \
			{ 0x00000008, ZAP_TYPE(INT64U), 8, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* TimeSinceReset */                                                                    \
			{ 0x0000FFFC, ZAP_TYPE(BITMAP32), 4, 0, ZAP_SIMPLE_DEFAULT(3) }, /* FeatureMap */                                \
			{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */                        \
                                                                                                                                         \
			/* Endpoint: 0, Cluster: AdministratorCommissioning (server) */                                                  \
			{ 0x00000000, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* WindowStatus */                                                                      \
			{ 0x00000001, ZAP_TYPE(FABRIC_IDX), 1,                                                                           \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* AdminFabricIndex */                                                                  \
			{ 0x00000002, ZAP_TYPE(INT16U), 2,                                                                               \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(NULLABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* AdminVendorId */                                                                     \
			{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */                        \
                                                                                                                                         \
			/* Endpoint: 0, Cluster: Operational Credentials (server) */                                                     \
			{ 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* NOCs */                                                                              \
			{ 0x00000001, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* Fabrics */                                                                           \
			{ 0x00000002, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* SupportedFabrics */                                                                  \
			{ 0x00000003, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* CommissionedFabrics */                                                               \
			{ 0x00000004, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* TrustedRootCertificates */                                                           \
			{ 0x00000005, ZAP_TYPE(INT8U), 1, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* CurrentFabricIndex */                                                                \
			{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(0x0001) }, /* ClusterRevision */                        \
                                                                                                                                         \
			/* Endpoint: 0, Cluster: Group Key Management (server) */                                                        \
			{ 0x00000000, ZAP_TYPE(ARRAY), 0,                                                                                \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(WRITABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* GroupKeyMap */                                                                       \
			{ 0x00000001, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* GroupTable */                                                                        \
			{ 0x00000002, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* MaxGroupsPerFabric */                                                                \
			{ 0x00000003, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* MaxGroupKeysPerFabric */                                                             \
			{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */                             \
                                                                                                                                         \
			/* Endpoint: 0, Cluster: Fixed Label (server) */                                                                 \
			{ 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* label list */                                                                        \
			{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */                             \
                                                                                                                                         \
			/* Endpoint: 0, Cluster: User Label (server) */                                                                  \
			{ 0x00000000, ZAP_TYPE(ARRAY), 0,                                                                                \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(WRITABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* label list */                                                                        \
			{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */                             \
                                                                                                                                         \
			/* Endpoint: 1, Cluster: Identify (server) */                                                                    \
			{ 0x00000000, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(WRITABLE),                                                 \
			  ZAP_SIMPLE_DEFAULT(0x0000) }, /* identify time */                                                              \
			{ 0x00000001, ZAP_TYPE(ENUM8), 1, 0, ZAP_SIMPLE_DEFAULT(0x0) }, /* identify type */                              \
			{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(2) }, /* ClusterRevision */                             \
                                                                                                                                         \
			/* Endpoint: 1, Cluster: Groups (server) */                                                                      \
			{ 0x00000000, ZAP_TYPE(BITMAP8), 1, 0, ZAP_EMPTY_DEFAULT() }, /* name support */                                 \
			{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(3) }, /* ClusterRevision */                             \
                                                                                                                                         \
			/* Endpoint: 1, Cluster: Descriptor (server) */                                                                  \
			{ 0x00000000, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* device list */                                                                       \
			{ 0x00000001, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* server list */                                                                       \
			{ 0x00000002, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* client list */                                                                       \
			{ 0x00000003, ZAP_TYPE(ARRAY), 0, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                          \
			  ZAP_EMPTY_DEFAULT() }, /* parts list */                                                                        \
			{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE),                                         \
			  ZAP_EMPTY_DEFAULT() }, /* ClusterRevision */                                                                   \
                                                                                                                                         \
			/* Endpoint: 1, Cluster: Binding (server) */                                                                     \
			{ 0x00000000, ZAP_TYPE(ARRAY), 0,                                                                                \
			  ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) | ZAP_ATTRIBUTE_MASK(WRITABLE),                                           \
			  ZAP_EMPTY_DEFAULT() }, /* Binding */                                                                           \
			{ 0x0000FFFD, ZAP_TYPE(INT16U), 2, 0, ZAP_SIMPLE_DEFAULT(1) }, /* ClusterRevision */                             \
	}

// This is an array of EmberAfCluster structures.
#define ZAP_ATTRIBUTE_INDEX(index) (&generatedAttributes[index])

#define ZAP_GENERATED_COMMANDS_INDEX(index) ((chip::CommandId *)(&generatedCommands[index]))

// Cluster function static arrays
#define GENERATED_FUNCTION_ARRAYS                                                                                       \
	const EmberAfGenericClusterFunction chipFuncArrayBasicServer[] = {                                              \
		(EmberAfGenericClusterFunction)emberAfBasicClusterServerInitCallback,                                   \
	};                                                                                                              \
	const EmberAfGenericClusterFunction chipFuncArrayLocalizationConfigurationServer[] = {                          \
		(EmberAfGenericClusterFunction)emberAfLocalizationConfigurationClusterServerInitCallback,               \
		(EmberAfGenericClusterFunction)MatterLocalizationConfigurationClusterServerPreAttributeChangedCallback, \
	};                                                                                                              \
	const EmberAfGenericClusterFunction chipFuncArrayTimeFormatLocalizationServer[] = {                             \
		(EmberAfGenericClusterFunction)emberAfTimeFormatLocalizationClusterServerInitCallback,                  \
		(EmberAfGenericClusterFunction)MatterTimeFormatLocalizationClusterServerPreAttributeChangedCallback,    \
	};                                                                                                              \
	const EmberAfGenericClusterFunction chipFuncArrayIdentifyServer[] = {                                           \
		(EmberAfGenericClusterFunction)emberAfIdentifyClusterServerInitCallback,                                \
		(EmberAfGenericClusterFunction)MatterIdentifyClusterServerAttributeChangedCallback,                     \
	};                                                                                                              \
	const EmberAfGenericClusterFunction chipFuncArrayGroupsServer[] = {                                             \
		(EmberAfGenericClusterFunction)emberAfGroupsClusterServerInitCallback,                                  \
	};

// clang-format off
#define GENERATED_COMMANDS { \
  /* Endpoint: 0, Cluster: OTA Software Update Requestor (server) */\
  /*   AcceptedCommandList (index=0) */ \
  0x00000000 /* AnnounceOtaProvider */, \
  chip::kInvalidCommandId /* end of list */, \
  /* Endpoint: 0, Cluster: General Commissioning (server) */\
  /*   AcceptedCommandList (index=2) */ \
  0x00000000 /* ArmFailSafe */, \
  0x00000002 /* SetRegulatoryConfig */, \
  0x00000004 /* CommissioningComplete */, \
  chip::kInvalidCommandId /* end of list */, \
  /*   GeneratedCommandList (index=6)*/ \
  0x00000001 /* ArmFailSafeResponse */, \
  0x00000003 /* SetRegulatoryConfigResponse */, \
  0x00000005 /* CommissioningCompleteResponse */, \
  chip::kInvalidCommandId /* end of list */, \
  /* Endpoint: 0, Cluster: Network Commissioning (server) */\
  /*   AcceptedCommandList (index=10) */ \
  0x00000000 /* ScanNetworks */, \
  0x00000002 /* AddOrUpdateWiFiNetwork */, \
  0x00000003 /* AddOrUpdateThreadNetwork */, \
  0x00000004 /* RemoveNetwork */, \
  0x00000006 /* ConnectNetwork */, \
  0x00000008 /* ReorderNetwork */, \
  chip::kInvalidCommandId /* end of list */, \
  /*   GeneratedCommandList (index=17)*/ \
  0x00000001 /* ScanNetworksResponse */, \
  0x00000005 /* NetworkConfigResponse */, \
  0x00000007 /* ConnectNetworkResponse */, \
  chip::kInvalidCommandId /* end of list */, \
  /* Endpoint: 0, Cluster: Diagnostic Logs (server) */\
  /*   AcceptedCommandList (index=21) */ \
  0x00000000 /* RetrieveLogsRequest */, \
  chip::kInvalidCommandId /* end of list */, \
  /*   GeneratedCommandList (index=23)*/ \
  0x00000001 /* RetrieveLogsResponse */, \
  chip::kInvalidCommandId /* end of list */, \
  /* Endpoint: 0, Cluster: Software Diagnostics (server) */\
  /*   AcceptedCommandList (index=25) */ \
  0x00000000 /* ResetWatermarks */, \
  chip::kInvalidCommandId /* end of list */, \
  /* Endpoint: 0, Cluster: Thread Network Diagnostics (server) */\
  /*   AcceptedCommandList (index=27) */ \
  0x00000000 /* ResetCounts */, \
  chip::kInvalidCommandId /* end of list */, \
  /* Endpoint: 0, Cluster: WiFi Network Diagnostics (server) */\
  /*   AcceptedCommandList (index=29) */ \
  0x00000000 /* ResetCounts */, \
  chip::kInvalidCommandId /* end of list */, \
  /* Endpoint: 0, Cluster: Ethernet Network Diagnostics (server) */\
  /*   AcceptedCommandList (index=31) */ \
  0x00000000 /* ResetCounts */, \
  chip::kInvalidCommandId /* end of list */, \
  /* Endpoint: 0, Cluster: AdministratorCommissioning (server) */\
  /*   AcceptedCommandList (index=33) */ \
  0x00000000 /* OpenCommissioningWindow */, \
  0x00000001 /* OpenBasicCommissioningWindow */, \
  0x00000002 /* RevokeCommissioning */, \
  chip::kInvalidCommandId /* end of list */, \
  /* Endpoint: 0, Cluster: Operational Credentials (server) */\
  /*   AcceptedCommandList (index=37) */ \
  0x00000000 /* AttestationRequest */, \
  0x00000002 /* CertificateChainRequest */, \
  0x00000004 /* CSRRequest */, \
  0x00000006 /* AddNOC */, \
  0x00000007 /* UpdateNOC */, \
  0x00000009 /* UpdateFabricLabel */, \
  0x0000000A /* RemoveFabric */, \
  0x0000000B /* AddTrustedRootCertificate */, \
  chip::kInvalidCommandId /* end of list */, \
  /*   GeneratedCommandList (index=46)*/ \
  0x00000001 /* AttestationResponse */, \
  0x00000003 /* CertificateChainResponse */, \
  0x00000005 /* CSRResponse */, \
  0x00000008 /* NOCResponse */, \
  chip::kInvalidCommandId /* end of list */, \
  /* Endpoint: 0, Cluster: Group Key Management (server) */\
  /*   AcceptedCommandList (index=51) */ \
  0x00000000 /* KeySetWrite */, \
  0x00000001 /* KeySetRead */, \
  0x00000003 /* KeySetRemove */, \
  0x00000004 /* KeySetReadAllIndices */, \
  chip::kInvalidCommandId /* end of list */, \
  /*   GeneratedCommandList (index=56)*/ \
  0x00000002 /* KeySetReadResponse */, \
  0x00000005 /* KeySetReadAllIndicesResponse */, \
  chip::kInvalidCommandId /* end of list */, \
  /* Endpoint: 1, Cluster: Identify (server) */\
  /*   AcceptedCommandList (index=59) */ \
  0x00000000 /* Identify */, \
  0x00000040 /* TriggerEffect */, \
  chip::kInvalidCommandId /* end of list */, \
  /* Endpoint: 1, Cluster: Groups (server) */\
  /*   AcceptedCommandList (index=62) */ \
  0x00000000 /* AddGroup */, \
  0x00000001 /* ViewGroup */, \
  0x00000002 /* GetGroupMembership */, \
  0x00000003 /* RemoveGroup */, \
  0x00000004 /* RemoveAllGroups */, \
  0x00000005 /* AddGroupIfIdentifying */, \
  chip::kInvalidCommandId /* end of list */, \
  /*   GeneratedCommandList (index=69)*/ \
  0x00000000 /* AddGroupResponse */, \
  0x00000001 /* ViewGroupResponse */, \
  0x00000002 /* GetGroupMembershipResponse */, \
  0x00000003 /* RemoveGroupResponse */, \
  chip::kInvalidCommandId /* end of list */, \
}

// clang-format on

#define ZAP_CLUSTER_MASK(mask) CLUSTER_MASK_##mask
#define GENERATED_CLUSTER_COUNT 30

// clang-format off
#define GENERATED_CLUSTERS { \
  { \
      /* Endpoint: 0, Cluster: Descriptor (server) */ \
      .clusterId = 0x0000001D,  \
      .attributes = ZAP_ATTRIBUTE_INDEX(0), \
      .attributeCount = 5, \
      .clusterSize = 0, \
      .mask = ZAP_CLUSTER_MASK(SERVER), \
      .functions = NULL, \
      .acceptedCommandList = nullptr ,\
      .generatedCommandList = nullptr ,\
    },\
  { \
      /* Endpoint: 0, Cluster: Binding (server) */ \
      .clusterId = 0x0000001E,  \
      .attributes = ZAP_ATTRIBUTE_INDEX(5), \
      .attributeCount = 2, \
      .clusterSize = 2, \
      .mask = ZAP_CLUSTER_MASK(SERVER), \
      .functions = NULL, \
      .acceptedCommandList = nullptr ,\
      .generatedCommandList = nullptr ,\
    },\
  { \
      /* Endpoint: 0, Cluster: Access Control (server) */ \
      .clusterId = 0x0000001F,  \
      .attributes = ZAP_ATTRIBUTE_INDEX(7), \
      .attributeCount = 6, \
      .clusterSize = 2, \
      .mask = ZAP_CLUSTER_MASK(SERVER), \
      .functions = NULL, \
      .acceptedCommandList = nullptr ,\
      .generatedCommandList = nullptr ,\
    },\
  { \
      /* Endpoint: 0, Cluster: Basic (server) */ \
      .clusterId = 0x00000028,  \
      .attributes = ZAP_ATTRIBUTE_INDEX(13), \
      .attributeCount = 21, \
      .clusterSize = 37, \
      .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \
      .functions = chipFuncArrayBasicServer, \
      .acceptedCommandList = nullptr ,\
      .generatedCommandList = nullptr ,\
    },\
  { \
      /* Endpoint: 0, Cluster: OTA Software Update Provider (client) */ \
      .clusterId = 0x00000029,  \
      .attributes = ZAP_ATTRIBUTE_INDEX(34), \
      .attributeCount = 0, \
      .clusterSize = 0, \
      .mask = ZAP_CLUSTER_MASK(CLIENT), \
      .functions = NULL, \
      .acceptedCommandList = nullptr ,\
      .generatedCommandList = nullptr ,\
    },\
  { \
      /* Endpoint: 0, Cluster: OTA Software Update Requestor (server) */ \
      .clusterId = 0x0000002A,  \
      .attributes = ZAP_ATTRIBUTE_INDEX(34), \
      .attributeCount = 5, \
      .clusterSize = 5, \
      .mask = ZAP_CLUSTER_MASK(SERVER), \
      .functions = NULL, \
      .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 0 ) ,\
      .generatedCommandList = nullptr ,\
    },\
  { \
      /* Endpoint: 0, Cluster: Localization Configuration (server) */ \
      .clusterId = 0x0000002B,  \
      .attributes = ZAP_ATTRIBUTE_INDEX(39), \
      .attributeCount = 1, \
      .clusterSize = 0, \
      .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(PRE_ATTRIBUTE_CHANGED_FUNCTION), \
      .functions = chipFuncArrayLocalizationConfigurationServer, \
      .acceptedCommandList = nullptr ,\
      .generatedCommandList = nullptr ,\
    },\
  { \
      /* Endpoint: 0, Cluster: Time Format Localization (server) */ \
      .clusterId = 0x0000002C,  \
      .attributes = ZAP_ATTRIBUTE_INDEX(40), \
      .attributeCount = 4, \
      .clusterSize = 4, \
      .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(PRE_ATTRIBUTE_CHANGED_FUNCTION), \
      .functions = chipFuncArrayTimeFormatLocalizationServer, \
      .acceptedCommandList = nullptr ,\
      .generatedCommandList = nullptr ,\
    },\
  { \
      /* Endpoint: 0, Cluster: General Commissioning (server) */ \
      .clusterId = 0x00000030,  \
      .attributes = ZAP_ATTRIBUTE_INDEX(44), \
      .attributeCount = 6, \
      .clusterSize = 14, \
      .mask = ZAP_CLUSTER_MASK(SERVER), \
      .functions = NULL, \
      .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 2 ) ,\
      .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 6 ) ,\
    },\
  { \
      /* Endpoint: 0, Cluster: Network Commissioning (server) */ \
      .clusterId = 0x00000031,  \
      .attributes = ZAP_ATTRIBUTE_INDEX(50), \
      .attributeCount = 10, \
      .clusterSize = 48, \
      .mask = ZAP_CLUSTER_MASK(SERVER), \
      .functions = NULL, \
      .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 10 ) ,\
      .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 17 ) ,\
    },\
  { \
      /* Endpoint: 0, Cluster: Diagnostic Logs (server) */ \
      .clusterId = 0x00000032,  \
      .attributes = ZAP_ATTRIBUTE_INDEX(60), \
      .attributeCount = 0, \
      .clusterSize = 0, \
      .mask = ZAP_CLUSTER_MASK(SERVER), \
      .functions = NULL, \
      .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 21 ) ,\
      .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 23 ) ,\
    },\
  { \
      /* Endpoint: 0, Cluster: General Diagnostics (server) */ \
      .clusterId = 0x00000033,  \
      .attributes = ZAP_ATTRIBUTE_INDEX(60), \
      .attributeCount = 9, \
      .clusterSize = 2, \
      .mask = ZAP_CLUSTER_MASK(SERVER), \
      .functions = NULL, \
      .acceptedCommandList = nullptr ,\
      .generatedCommandList = nullptr ,\
    },\
  { \
      /* Endpoint: 0, Cluster: Software Diagnostics (server) */ \
      .clusterId = 0x00000034,  \
      .attributes = ZAP_ATTRIBUTE_INDEX(69), \
      .attributeCount = 6, \
      .clusterSize = 6, \
      .mask = ZAP_CLUSTER_MASK(SERVER), \
      .functions = NULL, \
      .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 25 ) ,\
      .generatedCommandList = nullptr ,\
    },\
  { \
      /* Endpoint: 0, Cluster: Thread Network Diagnostics (server) */ \
      .clusterId = 0x00000035,  \
      .attributes = ZAP_ATTRIBUTE_INDEX(75), \
      .attributeCount = 65, \
      .clusterSize = 6, \
      .mask = ZAP_CLUSTER_MASK(SERVER), \
      .functions = NULL, \
      .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 27 ) ,\
      .generatedCommandList = nullptr ,\
    },\
  { \
      /* Endpoint: 0, Cluster: WiFi Network Diagnostics (server) */ \
      .clusterId = 0x00000036,  \
      .attributes = ZAP_ATTRIBUTE_INDEX(140), \
      .attributeCount = 15, \
      .clusterSize = 6, \
      .mask = ZAP_CLUSTER_MASK(SERVER), \
      .functions = NULL, \
      .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 29 ) ,\
      .generatedCommandList = nullptr ,\
    },\
  { \
      /* Endpoint: 0, Cluster: Ethernet Network Diagnostics (server) */ \
      .clusterId = 0x00000037,  \
      .attributes = ZAP_ATTRIBUTE_INDEX(155), \
      .attributeCount = 11, \
      .clusterSize = 6, \
      .mask = ZAP_CLUSTER_MASK(SERVER), \
      .functions = NULL, \
      .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 31 ) ,\
      .generatedCommandList = nullptr ,\
    },\
  { \
      /* Endpoint: 0, Cluster: Switch (server) */ \
      .clusterId = 0x0000003B,  \
      .attributes = ZAP_ATTRIBUTE_INDEX(166), \
      .attributeCount = 0, \
      .clusterSize = 0, \
      .mask = ZAP_CLUSTER_MASK(SERVER), \
      .functions = NULL, \
      .acceptedCommandList = nullptr ,\
      .generatedCommandList = nullptr ,\
    },\
  { \
      /* Endpoint: 0, Cluster: AdministratorCommissioning (server) */ \
      .clusterId = 0x0000003C,  \
      .attributes = ZAP_ATTRIBUTE_INDEX(166), \
      .attributeCount = 4, \
      .clusterSize = 2, \
      .mask = ZAP_CLUSTER_MASK(SERVER), \
      .functions = NULL, \
      .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 33 ) ,\
      .generatedCommandList = nullptr ,\
    },\
  { \
      /* Endpoint: 0, Cluster: Operational Credentials (server) */ \
      .clusterId = 0x0000003E,  \
      .attributes = ZAP_ATTRIBUTE_INDEX(170), \
      .attributeCount = 7, \
      .clusterSize = 2, \
      .mask = ZAP_CLUSTER_MASK(SERVER), \
      .functions = NULL, \
      .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 37 ) ,\
      .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 46 ) ,\
    },\
  { \
      /* Endpoint: 0, Cluster: Group Key Management (server) */ \
      .clusterId = 0x0000003F,  \
      .attributes = ZAP_ATTRIBUTE_INDEX(177), \
      .attributeCount = 5, \
      .clusterSize = 2, \
      .mask = ZAP_CLUSTER_MASK(SERVER), \
      .functions = NULL, \
      .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 51 ) ,\
      .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 56 ) ,\
    },\
  { \
      /* Endpoint: 0, Cluster: Fixed Label (server) */ \
      .clusterId = 0x00000040,  \
      .attributes = ZAP_ATTRIBUTE_INDEX(182), \
      .attributeCount = 2, \
      .clusterSize = 2, \
      .mask = ZAP_CLUSTER_MASK(SERVER), \
      .functions = NULL, \
      .acceptedCommandList = nullptr ,\
      .generatedCommandList = nullptr ,\
    },\
  { \
      /* Endpoint: 0, Cluster: User Label (server) */ \
      .clusterId = 0x00000041,  \
      .attributes = ZAP_ATTRIBUTE_INDEX(184), \
      .attributeCount = 2, \
      .clusterSize = 2, \
      .mask = ZAP_CLUSTER_MASK(SERVER), \
      .functions = NULL, \
      .acceptedCommandList = nullptr ,\
      .generatedCommandList = nullptr ,\
    },\
  { \
      /* Endpoint: 1, Cluster: Identify (client) */ \
      .clusterId = 0x00000003,  \
      .attributes = ZAP_ATTRIBUTE_INDEX(186), \
      .attributeCount = 0, \
      .clusterSize = 0, \
      .mask = ZAP_CLUSTER_MASK(CLIENT), \
      .functions = NULL, \
      .acceptedCommandList = nullptr ,\
      .generatedCommandList = nullptr ,\
    },\
  { \
      /* Endpoint: 1, Cluster: Identify (server) */ \
      .clusterId = 0x00000003,  \
      .attributes = ZAP_ATTRIBUTE_INDEX(186), \
      .attributeCount = 3, \
      .clusterSize = 5, \
      .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(ATTRIBUTE_CHANGED_FUNCTION), \
      .functions = chipFuncArrayIdentifyServer, \
      .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 59 ) ,\
      .generatedCommandList = nullptr ,\
    },\
  { \
      /* Endpoint: 1, Cluster: Groups (server) */ \
      .clusterId = 0x00000004,  \
      .attributes = ZAP_ATTRIBUTE_INDEX(189), \
      .attributeCount = 2, \
      .clusterSize = 3, \
      .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \
      .functions = chipFuncArrayGroupsServer, \
      .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 62 ) ,\
      .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 69 ) ,\
    },\
  { \
      /* Endpoint: 1, Cluster: Scenes (client) */ \
      .clusterId = 0x00000005,  \
      .attributes = ZAP_ATTRIBUTE_INDEX(191), \
      .attributeCount = 0, \
      .clusterSize = 0, \
      .mask = ZAP_CLUSTER_MASK(CLIENT), \
      .functions = NULL, \
      .acceptedCommandList = nullptr ,\
      .generatedCommandList = nullptr ,\
    },\
  { \
      /* Endpoint: 1, Cluster: On/Off (client) */ \
      .clusterId = 0x00000006,  \
      .attributes = ZAP_ATTRIBUTE_INDEX(191), \
      .attributeCount = 0, \
      .clusterSize = 0, \
      .mask = ZAP_CLUSTER_MASK(CLIENT), \
      .functions = NULL, \
      .acceptedCommandList = nullptr ,\
      .generatedCommandList = nullptr ,\
    },\
  { \
      /* Endpoint: 1, Cluster: Descriptor (server) */ \
      .clusterId = 0x0000001D,  \
      .attributes = ZAP_ATTRIBUTE_INDEX(191), \
      .attributeCount = 5, \
      .clusterSize = 0, \
      .mask = ZAP_CLUSTER_MASK(SERVER), \
      .functions = NULL, \
      .acceptedCommandList = nullptr ,\
      .generatedCommandList = nullptr ,\
    },\
  { \
      /* Endpoint: 1, Cluster: Binding (server) */ \
      .clusterId = 0x0000001E,  \
      .attributes = ZAP_ATTRIBUTE_INDEX(196), \
      .attributeCount = 2, \
      .clusterSize = 2, \
      .mask = ZAP_CLUSTER_MASK(SERVER), \
      .functions = NULL, \
      .acceptedCommandList = nullptr ,\
      .generatedCommandList = nullptr ,\
    },\
  { \
      /* Endpoint: 1, Cluster: Color Control (client) */ \
      .clusterId = 0x00000300,  \
      .attributes = ZAP_ATTRIBUTE_INDEX(198), \
      .attributeCount = 0, \
      .clusterSize = 0, \
      .mask = ZAP_CLUSTER_MASK(CLIENT), \
      .functions = NULL, \
      .acceptedCommandList = nullptr ,\
      .generatedCommandList = nullptr ,\
    },\
}

// clang-format on

#define ZAP_CLUSTER_INDEX(index) (&generatedClusters[index])

#define ZAP_FIXED_ENDPOINT_DATA_VERSION_COUNT 25

// This is an array of EmberAfEndpointType structures.
#define GENERATED_ENDPOINT_TYPES                                                                                       \
	{                                                                                                              \
		{ ZAP_CLUSTER_INDEX(0), 22, 148 }, { ZAP_CLUSTER_INDEX(22), 8, 10 },                                   \
	}

// Largest attribute size is needed for various buffers
#define ATTRIBUTE_LARGEST (259)

static_assert(ATTRIBUTE_LARGEST <= CHIP_CONFIG_MAX_ATTRIBUTE_STORE_ELEMENT_SIZE,
	      "ATTRIBUTE_LARGEST larger than expected");

// Total size of singleton attributes
#define ATTRIBUTE_SINGLETONS_SIZE (37)

// Total size of attribute storage
#define ATTRIBUTE_MAX_SIZE (158)

// Number of fixed endpoints
#define FIXED_ENDPOINT_COUNT (2)

// Array of endpoints that are supported, the data inside
// the array is the endpoint number.
#define FIXED_ENDPOINT_ARRAY                                                                                           \
	{                                                                                                              \
		0x0000, 0x0001                                                                                         \
	}

// Array of profile ids
#define FIXED_PROFILE_IDS                                                                                              \
	{                                                                                                              \
		0x0103, 0x0103                                                                                         \
	}

// Array of device types
#define FIXED_DEVICE_TYPES                                                                                             \
	{                                                                                                              \
		{ 0x0016, 1 }, { 0x0103, 1 }                                                                           \
	}

// Array of device type offsets
#define FIXED_DEVICE_TYPE_OFFSETS                                                                                      \
	{                                                                                                              \
		0, 1                                                                                                   \
	}

// Array of device type lengths
#define FIXED_DEVICE_TYPE_LENGTHS                                                                                      \
	{                                                                                                              \
		1, 1                                                                                                   \
	}

// Array of endpoint types supported on each endpoint
#define FIXED_ENDPOINT_TYPES                                                                                           \
	{                                                                                                              \
		0, 1                                                                                                   \
	}

// Array of networks supported on each endpoint
#define FIXED_NETWORKS                                                                                                 \
	{                                                                                                              \
		0, 0                                                                                                   \
	}
